Cloud computing is the delivery of computing as a service rather than a product, whereby resources, software, and information are provided to computers and other devices as a utility over a network. Typically, cloud computing services are offered by cloud computing service providers on a pay-per-usage basis. Cloud computing has evolved into multiple deployment models, including public clouds, community clouds, and private clouds. A “public cloud” is a model where a service provider makes resources, such as software applications and storage, available to the general public. A “community cloud” shares infrastructure between several organizations from a specific community with common concerns. A “community cloud” may be hosted by a third party or hosted internally or externally by the specific community. A “private cloud” is infrastructure operated solely for a single organization or restricted group of users. A “private cloud” may be hosted by a third party or hosted internally or externally by the specific community whether managed internally or by a third-party and hosted internally or externally by the single organization or restricted group of users.
There are a number of challenges associated with relying on a public or community cloud computing environment. First, data governance is hindered by the use of public or community cloud computing providers that may or may not guarantee the safety and security of data stored in the provider's cloud. Second, public or community cloud computing providers lack resource management capabilities which allow a system administrator to scale resource utilization based on server load and software application usage. Third, network latency associated with using a public or community cloud computing environment may make the cloud sluggish and cumbersome. Fourth, system administrators may find themselves at the mercy of a public or community cloud computing provider because of poor reliability or low availability. Finally, there remains the looming issue of security on the virtual servers that make up the public or community environments. For these reasons, a system administrator is well-advised to seek a private cloud solution in an attempt to overcome some or all of these challenges associated with relying on a public or community cloud computing environment.
The creation of a private cloud solution requires a knowledge set not normally available to the average system administrator. The implementation process may be a timely and frustrating process replete with opportunities for making mistakes or introduction of errors, which will terminate the process or lead to a less that optimal cloud instance. For these reasons, a method of initializing a transportable private cloud computing platform is desirable.
Once a private cloud solution has been created, system administrators need the capability of migrating software applications to the cloud in order to make use of the available cloud resources. Traditionally, a system administrator takes inventory of local software applications and selects candidates for migration to the cloud. For these reasons, a method of migrating software applications to a transportable private cloud computing platform is desirable.
A typical cloud computing environment is established within the confines of a server room, data warehouse, or other similar physical structure within a cloud computing facility. In the event of a natural disaster, these cloud computing environments are vulnerable to degraded performance and even total loss. It is common practice for a host of a cloud computing environment to engage in contingency planning, which may consist of full-scale disaster recovery, failover capabilities, and system redundancy. A problem with this type of planning is the requirement of a full-scale or nearly full-scale replica of the cloud computing environment in a different location. A mobile cloud computing platform is desirable to reduce or eliminate the need for a full-scale replica of a cloud computing environment in case of natural disaster or other interruption of service at the primary cloud computing facility. In the event of an imminent natural disaster, the mobile cloud computing platform may be relocated to avoid an interruption in service.
It may also be desirable to create a cloud computing environment in a remote or inhospitable location. Traditional cloud computing service providers would be inadequate due to lack of network connectivity and network latency. A mobile cloud computing platform could be deployed to such a location and a private cloud environment could be instantiated to provide cloud services to a limited geographic area.
The present invention is directed to overcoming one or more of the problems set forth above.